Описание
Задает или возвращает значение, указывающее одну или несколько
характеристик объекта Field, Relation или TableDef.
Значение
Задаваемое или возвращаемое значение имеет тип данных
Long, значением по умолчанию является 0.
Для объекта Field
значение свойства задает характеристики поля, представляемого данным объектом.
Значение данного свойства может быть выражено как сумма констант из следующего
списка:
dbAutoIncrField Значение поля в новой записи автоматически увеличивается на уникальное значение типа Long, которое невозможно изменить (в рабочей области Microsoft Jet, поддерживается только для таблиц баз данных Microsoft Jet (.mdb)). dbDescending Поле сортируется по убыванию (от "Я" до "А" и от 100 до 0) (только для объектов Field из семейства Fields объекта Index). Если данная константа не задана, то по умолчанию поле сортируется по возрастанию. Значение по умолчанию определено для полей объектов Index и TableDef (только в рабочей области Microsoft Jet). dbFixedField Поле имеет постоянный размер (задается по умолчанию для числовых полей). dbHyperlinkField Поле содержит сведения о гиперссылке (только для полей Memo). dbSystemField Поле содержит сведения о реплицикации для реплик; удаление полей этого типа не допускается (только в рабочей области Microsoft Jet). dbUpdatableField Значение поля можно изменять. dbVariableField Поле имеет переменный размер (только для текстовых полей).
Для объекта Relation значение свойства задает характеристики связи, представляемой данным объектом. Значение данного свойства может быть выражено как сумма констант из следующего списка:
dbRelationUnique Связь имеет тип отношения "один-к-одному". dbRelationDontEnforce Отключается режим обеспечения целостности данных. dbRelationInherited Связь определена не в текущей базе данных, две присоединенные таблицы содержатся во внешней базе данных. dbRelationUpdateCascade Задается режим каскадного обновления. dbRelationDeleteCascade Задается режим каскадного удаления.
Если в свойстве Attributes объекта Relation задан режим
каскадных операций, то ядро базы данных Microsoft Jet автоматически
обновляет или удаляет записи в одной или нескольких подчиненных таблицах при
соответствующих изменениях в главных таблицах.
Предположим, например, что
задан режим каскадного удаления для связи между таблицами "Клиенты" и "Заказы".
При удалении записей из таблицы "Клиенты" будут автоматически удаляться
связанные записи из таблицы "Заказы". Кроме того, если задано каскадное удаление
для связей между таблицей "Заказы" и другими таблицами, то при удалении записей
из таблицы "Клиенты" будут удалены связанные записи и в этих таблицах.
Для
объекта TableDef свойство Attributes задает характеристики
таблицы, представляемой данным объектом. Значение данного свойства может быть
выражено как сумма констант типа Long из следующего списка:
dbAttachExclusive Указывает для баз данных, использующих ядро Microsoft Jet, что таблица является присоединенной таблицей и открыта в режиме монопольного доступа. Эта константа может быть задана для добавленного объекта TableDef для локальной, но не для удаленной таблицы. dbAttachSavePWD Указывает для баз данных, использующих ядро Microsoft Jet, что код пользователя и пароль доступа к удаленной присоединенной таблице следует сохранить вместе со сведениями о присоединении. Эта константа может быть задана для добавленного объекта TableDef для удаленной, но не для локальной таблицы. dbSystemObject Таблица является системной таблицей ядра Microsoft Jet. Эта константа может быть задана для добавленного объекта TableDef. dbHiddenObject Таблица является скрытой таблицей ядра Microsoft Jet. Эта константа может быть задана для добавленного объекта TableDef. dbAttachedTable Таблица является присоединенной таблицей из базы данных, не являющейся источником данных ODBC, например, из базы данных с ядром Microsoft Jet или базы данных Paradox (только чтение). dbAttachedODBC Таблица является присоединенной таблицей из базы данных ODBC, например, из базы данных Microsoft SQL Server (только чтение).
Замечания
Для объекта, еще не добавленного в семейство, данное свойство
доступно для чтения/записи.
Для добавленного объекта Field использование
свойства Attributes зависит от того, какой из объектов содержит семейство
Fields.
Index Чтение/запись, пока объект TableDef, в который включен объект Index, не добавлен в объект Database; после этого только чтение. QueryDef Только чтение. Recordset Только чтение. Relation Не поддерживается.
Для добавленного объекта Relation свойство Attributes доступно
только для чтения.
Для добавленного объекта TableDef свойство доступно
для чтения/записи, хотя, если объект уже добавлен в семейство, невозможно задать
все константы, как отмечалось в разделителе "Задаваемые и возвращаемые
значения".
Допускается одновременное задание нескольких атрибутов, при этом
следует просто просуммировать соответствующие константы. Любые неверные (не
имеющие смысла) значения свойства будут проигнорированы без возникновения
ошибки.
Пример
Следующая программа отображает свойство Attributes объектов
Field, Relation и TableDef в базе данных "Борей".
Sub AttributesX() Dim dbsNorthwind As Database Dim fldLoop As Field Dim relLoop As Relation Dim tdfloop As TableDef Set dbsNorthwind = OpenDatabase("Борей.mdb") With dbsNorthwind ' Отображает атрибуты полей объекта TableDef. Debug.Print "Атрибуты полей таблицы: " & .TableDefs(0).Name For Each fldLoop In .TableDefs(0).Fields Debug.Print " " & fldLoop.Name & " = " & fldLoop.Attributes Next fldLoop ' Отображает атрибуты связей в базе данных "Борей". Debug.Print "Атрибуты связей в " & .Name For Each relLoop In .Relations Debug.Print " " & relLoop.Name & " = " & relLoop.Attributes Next relLoop ' Отображает атрибуты таблиц в базе данных "Борей". Debug.Print "Атрибуты таблиц в " & .Name For Each tdfloop In .TableDefs Debug.Print " " & tdfloop.Name & " = " & tdfloop.Attributes Next tdfloop .Close End With End Sub